import request from '@utils/request'

/**
 * 管理员登录
 * @param {Object} data - 登录参数
 * @param {string} data.username - 用户名
 * @param {string} data.password - 密码
 * @returns {Promise} 返回登录结果
 */
export function adminLogin(data) {
  return request({
    url: '/admin/login',
    method: 'post',
    data
  })
}

/**
 * 管理员登出
 * @returns {Promise} 返回登出结果
 */
export function adminLogout() {
  return request({
    url: '/admin/auth/logout',
    method: 'post'
  })
}

/**
 * 获取当前管理员信息
 * @returns {Promise} 返回当前管理员信息
 */
export function getCurrentAdmin() {
  return request({
    url: '/admin/auth/current',
    method: 'get'
  })
}

/**
 * 刷新管理员 token
 * @returns {Promise} 返回新的 token
 */
export function refreshAdminToken() {
  return request({
    url: '/admin/auth/refresh-token',
    method: 'post'
  })
}

/**
 * 修改管理员密码
 * @param {Object} data - 密码数据
 * @param {string} data.oldPassword - 旧密码
 * @param {string} data.newPassword - 新密码
 * @returns {Promise} 返回修改结果
 */
export function updateAdminPassword(data) {
  return request({
    url: '/admin/auth/password',
    method: 'put',
    data
  })
}

/**
 * 更新当前管理员信息
 * @param {Object} data - 管理员信息
 * @returns {Promise} 返回更新结果
 */
export function updateCurrentAdmin(data) {
  return request({
    url: '/admin/auth/current',
    method: 'put',
    data
  })
}

/**
 * 更新当前管理员头像
 * @param {Object} data - 头像数据
 * @returns {Promise} 返回更新结果
 */
export function updateCurrentAdminAvatar(data) {
  return request({
    url: '/admin/auth/avatar',
    method: 'put',
    data
  })
}

// 为了向后兼容，添加别名
export const getUserInfo = getCurrentAdmin
export const login = adminLogin
export const logout = adminLogout 